import Koa from "./koa/lib/application.js";

const app = new Koa();

// 页面显示多少？会不会有等待效果
// 多个函数串联主要采用了promise的组合 （一个promise返回一个prommise）
// 最终结果以最外层为主（只要最外层的promise成功了就结束了 ）
// koa中的异步逻辑 需要采用promise
// next() 函数前 必须要跟着  await return

function sleep(n) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, n);
  });
}
app.use(async function (ctx, next) {
  ctx.body = "1";
  await next();
  ctx.body = "2";
});
app.use(async function (ctx, next) {
  ctx.body = "3";
  await sleep(1000);
  await next();
  ctx.body = "4";
});

app.use(async function (ctx, next) {
  ctx.body = "5";
  await next();
  ctx.body = "6";
});

app.listen(3000);
